目的
- 為了減少人工處理的成本,可藉由自動測試工具撰寫腳本,來代替固定、重複性高的測試工作。
- 在有限的資源裡,有效的提高Regression test與Health check。
將Regression test自動化
- 前篇介紹迴歸測試的重要性,但這是一個重複性極高且非常枯燥的測試工作,常常會使測試人員感到厭煩。
- 當我們把測試案例錄製成一個個的腳本,這時候就可以大幅的降低「人力」的成本。
- 確保相同的bug不會在同樣的test case出現。
將Health check自動化
- 平時我們對網站的health check(健康檢查),大部份都是透過定期的指令去確認Server是不是活著。
- 網頁可能跑版破圖、購物車價錢計算錯誤、核心功能是否正常運作...,這些更是我們想監控的事情。
- 線上的系統,如果出問題,越晚修復所付出的成本就越高,能越早發現即時修復才能降低損失。
開發、維護成本
- 如果一開始把我們的網站就全面性的導入自動化測試,根據經驗來說,只會是以失敗收場。
- 自動化程式的開發,不僅要熟悉系統流程,在必要的時候,還必須與系統開發人員合作。
- 若初期的開發因成本過高、效果不如預期,皆會對自動化測試失去耐心與信心。
- 網站唯一不變的就是一直再變,自動化開發的優先順序就仰賴各位的取捨。
- 測試案例的變動,會直接影響到自動化測試的程式,對於兩者的維護都是相當重要的。
常見問題
- 相依性過高:自動測試應是一個完全獨立的測試專案,不該和欲測試的系統有過高的相依性。
- 單一測試流程過長:流程上應簡潔有力,要有一個明確的流程,而不要有過多的例外流程。
- 異動頻繁:雖說功能異動在所難免,但過度的異動或著邏輯大幅變動,都會增加維護的成本。
- 錯誤報告:到底是因系統程式有錯誤還是自動化程式有錯誤而產生的錯誤報告,需多加注意。
- 系統程式過差:在開發自動化程式時,會抓取頁面上的tag name、定位、... 等方式,若因系統程式在設計上太複雜或者結構太差都會提高自動化開發的難度。
結論
測試的方式有許多種,但最終的目的都是提高系統的穩定及品質,在不同的階段可以使用不同的測試工具,自動化測試也是其中一種,接下來我們將會介紹以Selenium為基礎的自動測試。